package _3DanLi.sync;

/**
 * @LazySingleton: 同步 懒汉式 单例
 * @author: ZBoHang
 * @time: 2021/9/7 10:39
 */
public class SyncLazySingleton {

    private volatile static SyncLazySingleton ins;

    // 存在线程安全问题  解决 同步 1.同步方法 2.同步代码块
    // 存在类加载的问题 解决 JUC CPU -> volatile

    public static SyncLazySingleton getIns() {
        if (ins == null) {
            synchronized (SyncLazySingleton.class) {
                if (ins == null) {
                    return new SyncLazySingleton();
                }
            }
        }
        return ins;
    }
}
